As one of methods for producing physical random numbers based on a natural phenomenon, there has been known a method using a resistor, a semiconductor such as a diode, or a conductor as a thermal-noise generating element. Thermal noises generated from the thermal-noise generating element are random in terms of both generation frequency and amplitude, and thereby physical random numbers can be produced in accordance with the thermal noises. Various random-number generating apparatuses utilizing such a thermal-noise generating element are disclosed in a number of publications.
The most typical method for generating physical random numbers by use of a thermal-noise generating element comprises amplifying and sampling thermal noises output from a thermal-noise generating element at a certain moment, and comparing each of the sampled values with a given threshold to produce random numbers. Specifically, thermal noises output from a thermal-noise generating element are amplified and sampled in constant periods. Then, physical random numbers can be produced in a digital manner according to a predetermined rule that “1” will be assigned to the sampled value if it is greater than a given threshold, and “0” will be assigned to the sampled value if it is not greater than the threshold.
As another method for generating physical random numbers by use of a thermal-noise generating element, there has been known a method comprising measuring a time interval between respective times when one of thermal noises to be randomly generated exceeds a given threshold and a subsequent one of the thermal noises exceeds the threshold, and directly extracting the temporal measurement value as a random number value. One example of a random-number generating apparatus based on this method is described in Japanese Patent Laid-Open Publication No. 2001-134422.
This random-number generating apparatus comprises a first circuit for amplifying a thermal noise output from a thermal-noise generating element and generating a rectangular pulse which rises at the moment when the height of the pulse exceeds a given threshold, a second circuit for generating clocks having a substantially higher frequency than that of the pulse, and a counter for counting the clocks. The number of clocks generated in the period between the generation of one pulse and the generation of a subsequent pulse is counted, and the counted value is extracted as a random number. However, the number of bits in a counter is limited (assuming that it is n bits), and thereby, when the counter counts 2n times, it is reset to restart counting from 1. Thus, the number of different varieties of actually produced random number values is 2n. According to this method, n bits of random numbers are generated per one pulse based on a thermal noise, so that random numbers can be generated at a higher speed as compared with the method based on momentarily sampling a thermal noise.
However, in the method based on measuring a time interval, the measured time intervals exhibit an exponential distribution, which causes a slight non-uniformity in the generation frequency of each random number value obtained in accordance with the measured time interval. While this level of non-uniformity has been ignored, it is desirable to eliminate such non-uniformity so as to produce a better random number.
Further, if it is attempted to increase the number of random numbers to be produced per unit time, or generate random numbers at a higher speed, successive pulses based on thermal noises will be frequently generated in such a manner as to temporally get closer to each other. In this case, due to the frequency characteristic of an amplifier circuit, it is likely that it will be difficult to recognize these pulses through a circuit-based technique. Thus, the generation frequency of a small value before the completion of one cycle of a counting operation of the counter is slightly lowered. This becomes one of the factors causing non-uniformity in a generation frequency.
In view of the above technical background, it is an object of the present invention to provide a random-number generating apparatus and method capable of generating a random number at a higher speed and uniformizing the generation frequency of each random number value, even in a simplified circuit configuration.